neon: sync catalog with live AI Gateway probe (add 12 models, remove gpt-5-5)#3019
Conversation
Verified every Databricks Foundation Model API endpoint against a live Neon AI Gateway branch (us-east-2). Adds 12 models confirmed working (with live-checked image-input + tool-calling capabilities) and removes gpt-5-5, which the gateway rejects as an unknown model.
The two inline models (no base_model to inherit from) were missing the schema-required `description` field, failing CI validation.
Qwen3.5 122B inherits reasoning=true, so the schema requires reasoning_options. Mirrors the canonical alibaba entry (toggle + budget_tokens).
Live-verified against the Neon AI Gateway (us-east-2):
- claude-opus-4-8: the gateway rejects `speed:"fast"` +
`anthropic-beta: fast-mode-2026-02-01` with 400 ("speed: Extra inputs
are not permitted" / "invalid beta flag") on both the anthropic and
mlflow routes, so the model does not serve fast mode -> remove
[experimental.modes.fast]. Reasoning is not budget_tokens-based:
`thinking.type:"enabled"` + budget_tokens returns 400 ("use
thinking.type.adaptive and output_config.effort"). The gateway accepts
`thinking.type:"disabled"` (toggle off) and adaptive thinking with
output_config.effort; its own validation error enumerates the accepted
values (low/medium/high/xhigh/max) -> switch to toggle + effort.
- qwen35-122b-a10b: `thinking`, `enable_thinking`, and reasoning budget
fields all return 400 ("unknown field"). The real control is
`reasoning_effort`; the gateway's validation error enumerates
none/low/medium/high, and `reasoning_effort:"none"` returns a plain
(non-reasoning) completion -> switch to effort (none/low/medium/high).
Review: neon catalog sync (PR #3019)Verdict: No hard blockers — approve with minor follow-ups. Blocker checklist (all pass)
Non-blocking recommendations
|
Live-verified against the Neon AI Gateway (us-east-2), same as opus-4-8:
- claude-opus-4-7: fast mode 400s ("speed: Extra inputs are not
permitted"), and `thinking.type:"enabled"` + budget_tokens 400s ("use
thinking.type.adaptive and output_config.effort"). `thinking.type:
"disabled"` (toggle off) and adaptive + output_config.effort both work;
the gateway's own validation error enumerates the accepted effort
values (low/medium/high/xhigh/max). -> remove [experimental.modes.fast],
switch reasoning_options to toggle + effort.
- claude-opus-4-6: fast mode 400s the same way -> remove
[experimental.modes.fast]. Its reasoning_options are left unchanged:
`thinking.type:"enabled"` + budget_tokens is accepted here (returns
thinking blocks), so toggle + budget_tokens is correct for 4-6.
|
Let me verify the Anthropic canonical opus-4-6/4-7 reasoning_options to assess Neon's reasoning-option choices, and confirm the base metadata reasoning flags for those models. |
Summary
Updates the Neon provider to match what the Neon AI Gateway actually serves today. Neon's gateway is powered by Databricks Foundation Model APIs, so I took the current Databricks supported-models list (docs updated 2026-07-02) as the candidate set and probed every model live against a real Neon AI Gateway branch (
us-east-2), then live-checked capabilities. The current Neon entries here were missing 11 working models and listed one (gpt-5-5) that the gateway rejects.Neon catalog id = Databricks pay-per-token endpoint name minus the
databricks-prefix (e.g.claude-sonnet-4-6→ underlyingglobal.anthropic.claude-sonnet-4-6).Added (12) — all verified working via live calls
Proprietary (pass-through provider list pricing), via
base_model:gpt-5-3-codex,gpt-5-2-codex,gpt-5-1-codex-max,gpt-5-1-codex-mini(OpenAI Responses API)claude-opus-4-8gemini-3-5-flashOpen-weight (priced from Databricks pay-per-token DBU rate × $0.070/DBU):
llama-4-maverick— $0.50/$1.50meta-llama-3-3-70b-instruct— $0.50/$1.50meta-llama-3-1-8b-instruct— $0.15/$0.45qwen35-122b-a10b— $0.22/$2.20qwen3-next-80b-a3b-instruct— $0.15/$1.20gemma-3-12b— $0.15/$0.50Removed (1)
gpt-5-5— the gateway returns400 unknown model "gpt-5-5"(any prefix / dialect). Not currently served by Neon.How this was verified
For each candidate I sent real requests to the gateway and recorded the result:
200.attachment) — sent a generated 32×32 PNG data-URI + "what color?".200⇒ supported;400 does not support image⇒ not.tool_call) — sent aget_weatherfunction tool and checked for an emitted tool call. All 12 support tool calling.Capability corrections applied so the entries match the gateway (not just the canonical base model):
qwen35-122b-a10b: canonical Qwen3.5 is multimodal, but Databricks/Neon serve it text-only (live: no image input). Overridden toattachment = false,modalities.input = ["text"], andlimit.output = 8000per the Databricks doc.meta-llama-3-3-70b-instruct: overridden toattachment = false(text-only on the gateway; live-confirmed).Notes / open questions for maintainers
databricks:generatescript currentlyIGNOREsllama/qwen/gemmaprefixes, so the Databricks provider omits them. These do work on Neon, so I've added them here with Databricks DBU-derived pricing — happy to drop them if you'd prefer Neon to mirror that ignore-list.gpt-oss-120b/gpt-oss-20bNeon entries appear to use OpenRouter pricing instead (e.g.gpt-oss-120b= $0.072/$0.28 rather than Databricks' $0.15/$0.60) — left unchanged here, but flagging the inconsistency.claude-sonnet-5,claude-fable-5,meta-llama-3-1-405b-instruct(unknown model), the Gemini image-output models, and all embedding models (the gateway exposes no/embeddingsroute).Test plan
bun run validate-equivalent: parsed each new TOML, resolvedbase_modelmerges, and confirmed required fields (name,attachment,reasoning,tool_call,open_weights,release_date,last_updated,cost.{input,output},limit.{context,output},modalities.{input,output}). All 36 Neon models valid.Update — reasoning controls & fast mode corrected (live re-verified)
A maintainer asked (via DM) whether Neon actually serves Opus fast mode and how the
qwen35reasoning controls work. I re-probed the live gateway (us-east-2) and corrected two entries in this PR:claude-opus-4-8[experimental.modes.fast]. The gateway rejects fast mode on every request shape:speed:"fast"+anthropic-beta: fast-mode-2026-02-01on/ai-gateway/anthropic/v1/messages→400 "speed: Extra inputs are not permitted"400 "invalid beta flag"/ai-gateway/mlflow/v1/chat/completions→400 "speed: Extra inputs are not permitted"reasoning_options:toggle+budget_tokens→toggle+effort.thinking.type:"enabled"+budget_tokensreturns400 '"thinking.type.enabled" is not supported for this model. Use "thinking.type.adaptive" and "output_config.effort" to control thinking behavior.'The gateway acceptsthinking.type:"disabled"(toggle off,200) andthinking.type:"adaptive"+output_config.effort. Its own validation error enumerates the accepted effort values:low,medium,high,xhigh,max(negative controleffort:"banana"→400 "unknown variant 'banana', expected one of 'low','medium','high','xhigh','max'").none/minimal/defaultare rejected.qwen35-122b-a10breasoning_options:toggle+budget_tokens→effort(none/low/medium/high). On the mlflow chat-completions route,thinking,enable_thinking, and any reasoning-budget field all return400 "unknown field". The real control isreasoning_effort; the gateway's validation error enumerates the accepted values (parameter "reasoning_effort" must be "none", "low", "medium" or "high").reasoning_effort:"none"returns a plain, non-reasoning completion (reasoning off); the other values returntype:"reasoning"blocks. There is no separate budget orenable_thinkingtoggle —noneis the off state.All checks were minimal live requests against a real Neon AI Gateway branch; no
budget_tokenscontrol exists for either model on Neon today.claude-opus-4-7andclaude-opus-4-6(pre-existing entries, corrected here too)Both carried the same
[experimental.modes.fast]block, and the gateway 400s fast mode on both (speed: Extra inputs are not permitted) — removed from both.Reasoning differs between the two:
claude-opus-4-7behaves like 4-8:thinking.type:"enabled"+budget_tokens→400(must useadaptive+output_config.effort);disabledtoggles off; effort enumlow/medium/high/xhigh/max(verified, incl.effort:"max"producing thinking tokens). →reasoning_optionschanged fromtoggle+budget_tokenstotoggle+effort.claude-opus-4-6still supports the classic API:thinking.type:"enabled"+budget_tokens=1024returns thinking blocks (200), anddisabledtoggles off. →reasoning_optionsleft unchanged (toggle+budget_tokensis correct); only the unsupported fast mode block was removed.